// 定义常量对象
const D01 = {
  0b100001: '发射点频模式1',
  0b100010: '发射点频模式2',
  0b100011: '噪声测量模式1',
  0b100100: '噪声测量模式2',
  0b100101: '低频测量模式1',
  0b100110: '高频测量模式1',
  0b100111: '低频测量模式2',
  0b101000: '高频测量模式2',
  0b101001: '定标模式',
  0b101010: '交替测量模式1',
  0b101011: '交替测量模式2',
  0b010001: '待机模式',
  0b010010: '供电模式',
  0b010011: '天线解锁'
}

const D02 = {
  0x00: '无错误',
  0x09: '奇偶校验错误',
  0x13: '累加和错误',
  0x25: '帧头错误',
  0x2C: '载荷标识错误',
  0x36: '命令类型错误',
  0x3F: '指令有效数据字节长度错误',
  0x63: '停止位错误',
  0x70: '字符间隔错误'
}

// 定义转换函数
const F01 = v => v / 255 * 20

const F02 = v => v / 255 * 5

export let name = "ACRS"

export function params() {
  return [
    // 1			包同步码		16			0xEB90
    new Params('a001', '包同步码', 16, null, null, null),
    // 2			包标识		16			0x092C	/	/	/	/
    new Params('a002', '包标识', 16, null, null, null),
    // 3			包序		16
    new Params('a003', '包序', 16, null, null, null),
    // 4			包长		16			0x3F
    new Params('a004', '包长', 16, null, null, null),
    // 5			副导头（时间码）		48		源码
    new Params('a005', '副导头（时间码）', 48, null, null, null),
    // 6			命令类型		16			0x25
    new Params('a006', '命令类型', 16, null, null, null),
    // 7			探测雷达测量模式	无	8		表格	注1	无	无	无	无	1s
    new Params('a007', '探测雷达测量模式', 8, null, v => D01[v], null),
    // 8			探测雷达+5.7V电流	A	8		曲线	注2	6	0	无	无	1s
    new Params('a008', '探测雷达+5.7V电流', 8, 'A', F01, null),
    // 9			探测雷达频综2G锁定遥测	V	8		表格	注3	5	0	无	无	1s
    new Params('a009', '探测雷达频综2G锁定遥测', 8, 'V', F02, null),
    // 10			探测雷达频综4G锁定遥测	V	8		表格	注3	5	0	无	无	1s
    new Params('a010', '探测雷达频综4G锁定遥测', 8, 'V', F02, null),
    // 11			探测雷达固放功率1遥测	V	8		表格	注3	5	0	无	无	1s
    new Params('a011', '探测雷达固放功率1遥测', 8, 'V', F02, null),
    // 12			探测雷达固放功率2遥测	无	8		表格	注3	255	0	无	无	1s
    new Params('a012', '探测雷达固放功率2遥测', 8, 'V', F02, null),
    // 13			探测雷达上注计数	无	8		表格	按十进制解析	20	0	无	无	1s
    new Params('a013', '探测雷达上注计数', 8, null, null, null),
    // 14			探测雷达接收功率衰减	无	8		表格	按十进制解析	31	0	无	无	1s
    new Params('a014', '探测雷达接收功率衰减', 8, null, null, null),
    // 15			探测雷达信号处理自检	无	8		表格	按十进制解析	165	165	无	无	1s
    new Params('a015', '探测雷达信号处理自检', 8, null, null, null),
    // 16			探测雷达数据压缩方式	无	8		表格	按十进制解析	255	0	无	无	1s
    new Params('a016', '探测雷达数据压缩方式', 8, null, null, null),
    // 17			探测雷达天线微动开关	V	8		表格	注3	5	0	无	无	1s
    new Params('a017', '探测雷达天线微动开关', 8, 'V', F02, null),
    // 18			探测雷达RS422通信错误计数	无	8		表格	按十进制解析	255	0
    new Params('a018', '探测雷达RS422通信错误计数', 8, null, null, null),
    // 19			探测雷达RS422通信错误类型	无	8		表格	注4	0x36	0	无	无	1s
    new Params('a019', '探测雷达RS422通信错误类型', 8, null, v => D02[v], null),
    // 20			探测雷达RS422复位、数据注入指令计数	无	8		表格	按十进制解析	255	0	无	无	1s
    new Params('a020', '探测雷达RS422复位', 8, null, null, null),
    // 21			发射波门宽度	μs	16		表格	注6	65535	0	无	无	1s
    new Params('a021', '发射波门宽度', 16, 'μs', null, null),
    // 22			校验和	/	8		/	校验和：从副导头开始到源数据的字节累加和
    new Params('a022', '校验和', 8, null, null, null),
  ]
}
